<?php
class Articulos extends CI_Controller {
    public function __construct() {
        parent::__construct();
        $this->load->library(
                array(
                    'session',
                    'r_session',
                    'form_validation'
                ));
        $this->load->helper(
                array(
                    'url'
                ));
        $this->load->model(
                array(
                    'articulos_model',
                    'marcas_model',
                    'productos_model'
                ));
        $this->r_session->check($this->session->all_userdata());
    }
    
    public function index() {
        $session = $this->session->all_userdata();
        $session['title'] = 'Listado de Artículos';
        $data['articulos'] = $this->articulos_model->get_articulos();
        
        foreach ($data['articulos'] as $key => $value) {
            $data['articulos'][$key]['marca'] = $this->marcas_model->get_marca_por_id($value['idMarca']); 
            $data['articulos'][$key]['producto'] = $this->productos_model->get_producto_por_id($value['idProducto']);
        }
        
        $this->load->view('layout/header', $session);
        $this->load->view('articulos/index', $data);
        $this->load->view('layout/footer');
    }
    
    public function agregar() {
        $session = $this->session->all_userdata();
        $session['title'] = 'Agregar Artículo';
        $data['marcas'] = $this->marcas_model->get_marcas();
        $data['productos'] = $this->productos_model->get_productos();
        
        $this->form_validation->set_rules('codigo', 'Código', 'required');
        $this->form_validation->set_rules('orden', 'Número de Orden', 'required|integer');
        $this->form_validation->set_rules('peso', 'Peso', 'numeric');
        $this->form_validation->set_rules('precio', 'Precio', 'numeric');
        
        if($this->form_validation->run() == FALSE) {
            
        } else {
            if($this->articulos_model->existe_articulo($this->input->post('codigo'), $this->input->post('marca'))) {
                $data['existe'] = 'El artículo '.$this->input->post('codigo').' ya existe';
            } else {
                $datos = array(
                    'codigo' => $this->input->post('codigo'),
                    'idMarca' => $this->input->post('marca'),
                    'orden' => $this->input->post('orden'),
                    'idProducto' => $this->input->post('producto'),
                    'peso' => $this->input->post('peso'),
                    'precio' => $this->input->post('precio'),
                    'habilitado' => 1
                );
                
                $this->articulos_model->set_articulo($datos);
                
                redirect('/articulos/', 'refresh');
            }
        }
        
        $this->load->view('layout/header', $session);
        $this->load->view('articulos/agregar', $data);
        $this->load->view('layout/footer');
    }
    
    public function update($idarticulo) {
        $session = $this->session->all_userdata();
        $session['title'] = 'Modificar Artículo';
        
        
        $this->form_validation->set_rules('codigo', 'Codigo', 'required');
        $this->form_validation->set_rules('marca', 'Marca', 'required');
        $this->form_validation->set_rules('orden', 'Número de Orden', 'required|integer');
        $this->form_validation->set_rules('producto', 'Producto', 'required');
        $this->form_validation->set_rules('peso', 'Peso', 'numeric');
        $this->form_validation->set_rules('precio', 'Precio', 'numeric');
        
        if($this->form_validation->run() == FALSE) {
            
        } else {
            $datos = array(
                'codigo' => $this->input->post('codigo'),
                'idMarca' => $this->input->post('marca'),
                'orden' => $this->input->post('orden'),
                'idProducto' => $this->input->post('producto'),
                'peso' => $this->input->post('peso'),
                'precio' => $this->input->post('precio')
            );
            
            $this->articulos_model->update($datos, $idarticulo);
            
            redirect('/articulos/', 'refresh');
        }
        
        $data['articulo'] = $this->articulos_model->get_articulo_por_id($idarticulo);
        $data['marcas'] = $this->marcas_model->get_marcas();
        $data['productos'] = $this->productos_model->get_productos();
        
        
        $this->load->view('layout/header', $session);
        $this->load->view('articulos/update', $data);
        $this->load->view('layout/footer');
    }
}
?>
